From: Marco Trevisan (TreviƱo) Date: Wed, 8 Oct 2025 03:37:57 +0000 (+0200) Subject: messageTray: Never close a notification banner that is about to show X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~80^2^2~3 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=8ac6e35410b20e17243a18696dc594838cf03dda;p=gnome-shell.git messageTray: Never close a notification banner that is about to show If a new notification is pushed (or the same is updated) in a very short time GNOME shell may only show the last notification (or none). This is because since commit 2801d0bf a notification that is about to show (so in SHOWING state) may be considered expired, given that the notification timeout won't be set until the show animation has completed. Thus, only consider the notification as expired when the notification is in the shown state, but not in the showing one. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6529 Fixes: 2801d0bfe3 ("messageTray: Close SHOWING banner when its notification is destroyed") Part-of: --- diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 64213c411..63bf26eaf 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -1077,6 +1077,7 @@ export const MessageTray = GObject.registerClass({ } else if (this._notificationState === State.SHOWING || this._notificationState === State.SHOWN) { let expired = (this._userActiveWhileNotificationShown && + this._notificationState === State.SHOWN && this._notificationTimeoutId === 0 && this._notification.urgency !== Urgency.CRITICAL && !this._pointerInNotification) || this._notificationExpired;